iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
自我挑戰組

重新開始 JavaScript系列 第 14

[Day14] 運算式與運算子

  • 分享至 

  • xImage
  •  

運算式(Expression)

Day11 - 陳述式與表達式 中有提到運算式為表達式,會回傳一個結果。運算式其實是一個簡單的函式,它是由 運算子 (Operator)運算元 (Operant) 組合而成,透過符號或單詞來運算他前後的數值,並回傳一個結果。

以下面程式碼為例:

var nickName;
nickName = 'Carol';

  • =運算子,可將右邊參數賦予到左邊,並回傳一個結果
  • nickName 以及 Carol 是運算子左右兩邊的值,為運算元
  • Carol 是運算式(表達式)回傳結果
  • 此例為二元運算子

運算子 (Operator)

運算子有以下幾種類別:

  • 賦值運算子
  • 比較運算子
  • 算術運算子
  • 位元運算子
  • 邏輯運算子
  • 字串運算子
  • 條件(三元)運算子
  • 逗點運算子
  • 一元運算子
  • 關係運算子

詳細內容可看 MDN - 運算式與運算子

而依據運算元的數量,又可分為一元運算子二元運算子三元運算子,但絕大部分為二元運算子(左右兩邊運算元搭配中間運算子)

二元運算子

二元運算子需要有 1 個運算子、運算子左右兩邊各 1 個運算元,共 2 個運算元

運算元1 運算子 運算元2

ex: 1*1

範例

var a;
a = 1 + 1;

運算過程

var a;
1 + 1
a = 2
  • 1 + 1 為算術運算子 -> 二元運算子
  • a = 2 為 賦值運算子 -> 二元運算子
  • 先執行 1 + 1,計算出結果 2,回傳結果後,再賦予至左邊 變數 a 上,並回傳結果

一元運算子

一元運算子的運算子大部分是單字,只需一個運算元,在運算子的前面或後面

運算子 運算元

ex:++a
運算元 運算子

ex:a++

範例1

delete 刪掉特定的物件

var data = [0, 1]
delete data[0];

範例2

typeof 查看運算元型別

var num = 1;
typeof a;

三元運算子

三元運算子只有一種,以 ?: 2 個運算子、以及 3 個運算元結合而成

判斷式 ? 表達式1 : 表達式2

三元運算子會依據判斷式去決定回傳哪個表達式的結果,所以當 判斷式 結果為 true 則會回傳表達式1,否則回傳遞表達式2

範例1

var number = 10;
(number < 15) ? '太少' : '太多';
  • '太少''太多' 都是表達式,放在 Chrome 的 console 上時會回傳結果
  • 因判斷式結果為 true ,所以此三元運算子最後會回傳第一個表達式 - '太少'

範例2

此範例為 三元運算子二元運算子 的組合

var number = 20;
var value = (number < 15) ? '太少' : '太多';
console.log(value);

運算過程

var number = 20;
(number < 15) ? '太少' : '太多';
var value = '太多';
console.log(value);
  • 因三元運算子的判斷式結果為 false ,所以此三元運算子回傳第二個表達式 - '太多'
  • 利用 賦值運算子 -> 二元運算子,將三元運算子回傳的值賦予至左邊 變數 value

參考文獻

六角學院 - JavaScript 核心篇

MDN - 運算式與運算子

MDN - 條件運算子


上一篇
[Day13] JavaScript 的原始型別
下一篇
[Day15] 優先性與相依性
系列文
重新開始 JavaScript32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言